import { useUser } from "@/stores/User"
const UserStore = useUser()

// 手机号
export function validatePhone(rule: any, value: any) {
    const reg = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[1589]))\d{8}$/
    if (!value) {
        return Promise.reject('请输入手机号！')
    } else if (!reg.test(value)) {
        return Promise.reject('手机号格式有误！')
    } else {
        return Promise.resolve()
    }
}

// 单价
export function validateIsMoney(rule: any, value: any) {
    const reg = /^-?\d{1,3}(,\d{3})*(\.\d{1,2})?$/
    if (!value) {
        return Promise.reject('此项为必填项！')
    } else if (!reg.test(value)) {
        return Promise.reject('请输入有效数字！')
    } else {
        return Promise.resolve()
    }
}

// 含小数点的数字
export function validateIsPointNumber(rule: any, value: any) {
    const reg = /^[1-9][0-9]*(\.[0-9]{1,2})?$/
    if (!value) {
        return Promise.reject('此项为必填项！')
    } else if (!reg.test(value)) {
        return Promise.reject('请输入有效数字！')
    } else {
        return Promise.resolve()
    }
}

// 正整数
export function validateIsPositiveInteger(rule: any, value: any) {
    const reg = /^[+]{0,1}(\d+)$/
    if (!value) {
        return Promise.reject('此项为必填项！')
    } else if (!reg.test(value)) {
        return Promise.reject('请输入有效数字！')
    } else {
        return Promise.resolve()
    }
}

// 二级级联选择器
export function validateTwoCascade(rule: any, value: any) {
    if (!value) {
        return Promise.reject('请选择所属上级！')
    } else if (value.length != 2) {
        return Promise.reject('请选择所属上级！');
    } else {
        return Promise.resolve()
    }
}
// 三级级联选择器
export function validatorThreeCascade(rule: any, value: any) {
    if (!value) {
        return Promise.reject('请选择所属畜栏！')
    } else if (value.length != 3) {
        return Promise.reject('请选择所属畜栏！');
    } else {
        return Promise.resolve()
    }
}

// 二次确认密码
export function validateConfirmPassword(rule: any, value: string) {
    if (!value) {
        return Promise.reject('请再次确认密码！')
    } else if (value !== UserStore.editForm.password) {
        return Promise.reject('两次密码不一致！');
    } else {
        return Promise.resolve()
    }
}


// 版本号
export function validateVersion(rule: any, value: string) {
    const versionRegex = /^(\d+)(\.\d+)*$/;
    if (!value) {
        return Promise.reject('请输入版本号！')
    } else if (!versionRegex.test(value)) {
        return Promise.reject('请输入正确的版本号！');
    } else {
        return Promise.resolve()
    }
}
// 码录
export function validateCode(rule: any, value: string) {
    if (!value) {
        return Promise.reject('请输入码录！')
    } else if (value.length != 6) {
        return Promise.reject('码录长度为6位！');
    } else {
        return Promise.resolve()
    }
}